﻿using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;

namespace MyGames
{
    static public class GUI
    {
        static ContentManager content = GameLoader.Content;

        // Thanh hiển thị thông tin nhân vật người chơi
        static public class BarGUI
        {
            static public class PlayerBar
            {
                static public Vector2 position = new Vector2(0, 392);
                static public Texture2D container = content.Load<Texture2D>(Const.TexturePathGUI + "PlayerBar\\Container"); 
                static public Texture2D health = content.Load<Texture2D>(Const.TexturePathGUI + "PlayerBar\\Health");
                static public Texture2D mana = content.Load<Texture2D>(Const.TexturePathGUI + "PlayerBar\\Mana");
                static public Texture2D experience = content.Load<Texture2D>(Const.TexturePathGUI + "PlayerBar\\Experience");
                static public Texture2D fullBar = content.Load<Texture2D>(Const.TexturePathGUI + "PlayerBar\\FullBar");
            }

            static public class HealthBar
            {
                static public Texture2D container = GUI.content.Load<Texture2D>(Const.TexturePathGUI + "HealthBar\\Container");
                static public Texture2D health = GUI.content.Load<Texture2D>(Const.TexturePathGUI + "HealthBar\\Health");
                static public Texture2D mana = GUI.content.Load<Texture2D>(Const.TexturePathGUI + "HealthBar\\Mana");
            }
        }

        // Gamepad button
        static public class GamePadGUI
        {
           

            static public Texture2D nagivator = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\Nagivator");
            static public Texture2D attack = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\Attack");
            static public Texture2D avatar = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\Avatar");
            static public Texture2D impactFlare = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\ImpactFlare");
            static public Texture2D flameExplosion = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\FlameExplosion");
            static public Texture2D fireShield = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\FireShield");
            static public Texture2D chaoticRift = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\ChaoticRift");
            static public Texture2D auraOfFire = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\AuraOfFire");

            static public Texture2D showSkillDialog = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\ShowSkill");
            static public Texture2D showInventory = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\ShowInventory");
            static public Texture2D showQuestlog = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\ShowQuest");
            static public Texture2D pauseGame = content.Load<Texture2D>(Const.TexturePathGUI + "Button\\Pause");

            static public Vector2 nagivatorPos = new Vector2(10, 380);
            static public Vector2 attackPos = new Vector2(735, 415);
            static public Vector2 avatarPos = new Vector2(690, 370);
            static public Vector2 impactFlarePos = new Vector2(675, 425);
            static public Vector2 fireShieldPos = new Vector2(620, 425);
            static public Vector2 flameExplosionPos = new Vector2(750, 355);
            static public Vector2 chaoticRiftPos = new Vector2(750, 300);
            static public Vector2 NagivatorCenter
            {
                get { return new Vector2(nagivatorPos.X + nagivator.Width / 2, nagivatorPos.Y + nagivator.Height / 2); }
            }

            static public Vector2 showSkillDialogPos = new Vector2(755, 5);
            static public Vector2 showInventoryPos = new Vector2(715, 5);
            static public Vector2 showQuestlogPos = new Vector2(675, 5);
            static public Vector2 pauseGamePos = new Vector2(635, 5);
        }

        // Skill dialog
        static public class SkillGUI
        {
            static public Texture2D form = content.Load<Texture2D>(Const.TexturePathGUI + "SkillDialog\\Form");
            static public Texture2D selectedSkill = content.Load<Texture2D>(Const.TexturePathGUI + "SkillDialog\\SelectedSkill");
            static public Texture2D close = content.Load<Texture2D>(Const.TexturePathGUI + "SkillDialog\\Close");
            static public Vector2 formPos = new Vector2(100, 30);
            static public Vector2 firstSkillOffset = new Vector2(25, 90);
            static public Vector2 inforOffset = new Vector2(25, 150);
            static public Vector2 skillUpOffset = new Vector2(450, 310);
            static public Vector2 closeOffset = new Vector2(60, 20);
            static public int skillsSpacing = 50;
        }

        // Inventory dialog
        static public class InventoryGUI
        {
            static public Texture2D form = content.Load<Texture2D>(Const.TexturePathGUI + "InventoryDialog\\Form");
            static public Vector2 formPos = new Vector2(100, 60);
            static public Vector2 closeOffset = new Vector2(60, 20);
            static public Vector2 firstItemOffset = new Vector2(16, 218);
            static public int itemSize = 40;
            static public int itemSpacing = 2;

            static public Vector2 swordOffset = new Vector2(408, 152);
            static public Vector2 handOffset = new Vector2(408, 208);
            static public Vector2 helmOffset = new Vector2(467, 128);
            static public Vector2 armorOffset = new Vector2(467, 184);
            static public Vector2 bootOffset = new Vector2(467, 240);
            static public Vector2 ring1Offset = new Vector2(526, 152);
            static public Vector2 ring2Offset = new Vector2(526, 208);
            static int _equipmentSize = 50;

            static public Vector2 firstInfoOffset = new Vector2(30, 85);
            static public Vector2 secondInfoOffset = new Vector2(190, 85);

        }

    }
}
